package br.com.kizura.service.web;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.kizura.model.beans.Pessoa;
import br.com.kizura.service.PessoaService;

@SessionScoped
@Named("pessoaMB")
public class PessoaMB implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private PessoaService service;

	private Pessoa pessoa;

	public Pessoa getPessoa() {
		if (pessoa == null) {
			pessoa = new Pessoa();
		}
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public void save() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			service.save(pessoa);
			context.addMessage(null, new FacesMessage("Adcionado com sucesso"));

		} catch (Exception e) {
			context.addMessage(null, new FacesMessage("Erro Ao procesar"));
		}
	}

	public void update() {
		service.update(pessoa);
	}

	public void delete() {
		service.delete(pessoa);
	}

	public List<String> autoLoadComplete() {
		List<Pessoa> pessoas = service.findByName(pessoa.getNome());
		List<String> nomes = new ArrayList<String>();

		for (Pessoa resultado : pessoas) {
			nomes.add(resultado.getNome());
		}
		return nomes;
	}

	public List<Pessoa> findAll() {
		return service.findAll();
	}
}
